package com.graden.background.service.sysuser;


import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.graden.background.controller.sysuser.vo.*;
import com.graden.background.repository.sysuser.entity.SysUser;
import org.springframework.validation.annotation.Validated;

import javax.validation.Valid;

/**
 * <p>
 * 系统用户服务实现类
 * </p>
 *
 * @author zjf
 * @since 2019-03-21
 */
@Validated
public interface ISysUserService extends IService<SysUser> {

	JSONObject checkLogin(@Valid UserLoginVO userLoginVO);

	String logout(String token);

	void injectUserRequestScope(SysUser sysUser);

	boolean existPower(int functionId);

	PageInfo getAllByPage(int pageNo, int size, UserSelectVO userSelectVO);

	void addUser(@Valid UserAddVO userAddVO);

	void updateUser(@Valid UserRoleUpdateVO userUpdateVO);

	void updatePassword(@Valid UserPwdUpdateVO userPwdUpdateVO);

	void activateUser(@Valid UserActivateVO userActivateVO);

	void delete(int id);

	SysUser getSysUserByBipCode(String bipCode);
}
